﻿////#include <iostream>
////#include<algorithm>
////#include<queue>
////#include<stdio.h>
////#include<string.h>
////#include<map>
////#include<stdlib.h>
////using namespace std;
////#define M 31
////#define W 21
////#define S 51
////typedef struct//存储项目信息的结构体
////{
////    char name[20];//存储项目的姓名
////    int top;//存储项目名次的选择
////    int num;//存储有几个有名次的
////    int ranking[6];//存储名次
////    int grade[6];//存储分数
////    char d[20][20];//存储同学的姓名
////    int gender;//存储性别
////} project;
////typedef struct//存储学校的信息
////{
////    char name[20];//存学校的姓名
////    int school;//存学校的总成绩
////    int man;//存男团的总成绩
////    int woman;//存女团的总成绩
////    project b[M + W];//存这个学校的项目
////} school;
////school a[S];
////int nom, item;
////bool cmp1(school c, school d)//排序
////{
////    return c.school > d.school;
////}
////bool cmp2(school c, school d)
////{
////    return c.man > d.man;
////}
////bool cmp3(school c, school d)
////{
////    return c.woman > d.woman;
////}
////void start()//初始页面
////{
////    int i;
////    for (i = 0; i < 10; i++)
////        printf("\n");
////    printf("          *****************************************************\n");
////    printf("          **                                                 **\n");
////    printf("          >>>>>>>>>>>>>>欢迎使用运动会分数统计项目<<<<<<<<<<<<<\n");
////    printf("          **                                                 **\n");
////    printf("          *****************************************************\n");
////    printf("按任意键进入系统.........");
////    getchar();
////    return;
////}
////void menu()//菜单
////{
////    printf("******************************************************\n");
////    printf("                   1:录入运动会信息                   \n");
////    printf("                   2:输出各学校的信息                 \n");
////    printf("                   3:输出排序后的信息                 \n");
////    printf("                   4:输出各项目的信息                 \n");
////    printf("                   5:输出各学校的总分                 \n");
////    printf("                   6:将信息存入文件                   \n");
////    printf("                   7:将信息从文件中读出               \n");
////    printf("                   8:查询某学校的信息或者某项目的信息 \n");
////    printf("                   9:退出程序                         \n");
////    printf("******************************************************\n");
////}
////void Initialization()//初始化函数，初始化学校的总分等
////{
////    int i, j, k;
////    for (i = 1; i <= nom; i++)
////    {
////        a[i].school = 0;
////        a[i].man = 0;
////        a[i].woman = 0;
////        for (j = 1; j <= item; j++)
////        {
////            a[i].b[j].top = 0;
////            a[i].b[j].gender = 0;
////            a[i].b[j].num = 0;
////            for (k = 1; k <= 5; k++)
////            {
////                a[i].b[j].ranking[k] = 0;
////                a[i].b[j].grade[k] = 0;
////
////            }
////        }
////    }
////    return;
////}
////void input()//输入函数
////{
////    printf("请输入学校的总个数: ");
////    scanf("%d", &nom);
////    printf("\n");
////    printf("请输入项目的总个数: ");
////    scanf("%d", &item);
////    printf("\n");
////    int i, j, k;
////    Initialization();
////    for (i = 1; i <= nom; i++)
////    {
////        printf("请输入学校的名称：");
////        scanf("%s", &a[i].name);
////        printf("\n");
////
////        for (j = 1; j <= item; j++)
////        {
////            printf("请输入项目的名称:");
////            scanf("%s", a[i].b[j].name);
////            printf("\n");
////            printf("请输入是男子项目还是女子项目 （男子输1，女子输2）：");
////            scanf("%d", &a[i].b[j].gender);
////            printf("\n");
////            int sum = 0;
////            if (a[i].b[j].gender == 1)
////            {
////                printf("请输入此项目取前几名（3或5）：");
////                scanf("%d", &a[i].b[j].top);
////                printf("\n");
////                printf("请输入该学校在此项目取得名次的人数：");
////                scanf("%d", &a[i].b[j].num);
////                printf("\n");
////                for (k = 1; k <= a[i].b[j].num; k++)
////                {
////                    printf("请输入获得的名次情况和获得名次的人名:");
////                    scanf("%d %s", &a[i].b[j].ranking[k], &a[i].b[j].d[k]);
////
////                    printf("\n");
////                    if (a[i].b[j].top == 3)
////                    {
////                        if (a[i].b[j].ranking[k] == 1)
////                        {
////                            a[i].b[j].grade[k] = 5;
////                        }
////                        else if (a[i].b[j].ranking[k] == 2)
////                        {
////                            a[i].b[j].grade[k] = 3;
////                        }
////                        else if (a[i].b[j].ranking[k] == 3)
////                        {
////                            a[i].b[j].grade[k] = 2;
////                        }
////                        else
////                            a[i].b[j].grade[k] = 0;
////
////                    }
////                    else if (a[i].b[j].top == 5)
////                    {
////                        if (a[i].b[j].ranking[k] == 1)
////                        {
////                            a[i].b[j].grade[k] = 7;
////                        }
////                        else if (a[i].b[j].ranking[k] == 2)
////                        {
////                            a[i].b[j].grade[k] = 5;
////                        }
////                        else if (a[i].b[j].ranking[k] == 3)
////                        {
////                            a[i].b[j].grade[k] = 3;
////                        }
////                        else if (a[i].b[j].ranking[k] == 4)
////                        {
////                            a[i].b[j].grade[k] = 2;
////                        }
////                        else if (a[i].b[j].ranking[k] == 5)
////                        {
////                            a[i].b[j].grade[k] = 1;
////                        }
////                        else
////                            a[i].b[j].grade[k] = 0;
////
////                    }
////                    else
////                    {
////                        printf("规定的名次不符合要求\n");
////                        j--;
////                        continue;
////                    }
////                }
////                for (k = 1; k <= a[i].b[j].num; k++)
////                    sum += a[i].b[j].grade[k];
////                a[i].school += sum;
////                a[i].man += sum;
////            }
////            else
////            {
////                printf("请输入此项目取前几名（3或5）：");
////                scanf("%d", &a[i].b[j].top);
////                printf("\n");
////                printf("请输入该学校在此项目取得名次的人数：");
////                scanf("%d", &a[i].b[j].num);
////                printf("\n");
////                for (k = 1; k <= a[i].b[j].num; k++)
////                {
////                    printf("请输入获得的名次情况和获得名次的人名:");
////                    scanf("%d %s", &a[i].b[j].ranking[k], &a[i].b[j].d[k]);
////                    printf("\n");
////                    if (a[i].b[j].top == 3)
////                    {
////                        if (a[i].b[j].ranking[k] == 1)
////                        {
////                            a[i].b[j].grade[k] = 5;
////                        }
////                        else if (a[i].b[j].ranking[k] == 2)
////                        {
////                            a[i].b[j].grade[k] = 3;
////                        }
////                        else if (a[i].b[j].ranking[k] == 3)
////                        {
////                            a[i].b[j].grade[k] = 2;
////                        }
////                        else
////                            a[i].b[j].grade[k] = 0;
////
////                    }
////                    else if (a[i].b[j].top == 5)
////                    {
////                        if (a[i].b[j].ranking[k] == 1)
////                        {
////                            a[i].b[j].grade[k] = 7;
////                        }
////                        else if (a[i].b[j].ranking[k] == 2)
////                        {
////                            a[i].b[j].grade[k] = 5;
////                        }
////                        else if (a[i].b[j].ranking[k] == 3)
////                        {
////                            a[i].b[j].grade[k] = 3;
////                        }
////                        else if (a[i].b[j].ranking[k] == 4)
////                        {
////                            a[i].b[j].grade[k] = 2;
////                        }
////                        else if (a[i].b[j].ranking[k] == 5)
////                        {
////                            a[i].b[j].grade[k] = 1;
////                        }
////                        else
////                            a[i].b[j].grade[k] = 0;
////
////                    }
////                    else
////                    {
////                        printf("规定的名次不符合要求\n");
////                        j--;
////                        continue;
////                    }
////                }
////                for (k = 1; k <= a[i].b[j].num; k++)
////                    sum += a[i].b[j].grade[k];
////                a[i].school += sum;
////                a[i].woman += sum;
////            }
////        }
////
////    }
////    return;
////}
////void output()//输出学校信息函数
////{
////    int i, j, k;
////    printf("学校         项目       性别       名次个数     获得名次数       名次       姓名\n");
////    for (i = 1; i <= nom; i++)
////    {
////        for (j = 1; j <= item; j++)
////        {
////
////            for (k = 1; k <= a[i].b[j].num; k++)
////            {
////                if (a[i].b[j].gender == 1)
////                    printf("%-13s%-8s   男子       %-15d%-15d%-10d%s\n", a[i].name, a[i].b[j].name, a[i].b[j].top, a[i].b[j].num, a[i].b[j].ranking[k], a[i].b[j].d[k]);
////                else
////                    printf("%-13s%-8s   女子       %-15d%-15d%-10d%s\n", a[i].name, a[i].b[j].name, a[i].b[j].top, a[i].b[j].num, a[i].b[j].ranking[k], a[i].b[j].d[k]);
////            }
////        }
////    }
////    printf("按任意键继续.........\n");
////    getchar();
////    getchar();
////    return;
////}
////void sortmenu()//排序菜单
////{
////    printf("***********************************************\n");
////    printf("              1:按照学校的名次排序             \n");
////    printf("              2:按照男团的名次排序             \n");
////    printf("              3:按照女团的名次排序             \n");
////    printf("              4:按照学校的编号输出             \n");
////    printf("              5:退出排序系统                   \n");
////    printf("***********************************************\n");
////}
////void sortput()//排序的函数
////{
////
////    while (1)
////    {
////        system("cls");
////        sortmenu();
////        printf("请输入命令：");
////        int com, i;
////        scanf("%d", &com);
////        printf("\n");
////        if (com == 4)
////        {
////            output();
////        }
////        else if (com == 1)
////        {
////            printf("按照学校的名次排序为：\n");
////            sort(a + 1, a + nom, cmp1);
////            for (i = 1; i <= nom; i++)
////            {
////                printf("排名第%d的学校为：%s\n", i, a[i].name);
////            }
////            printf("按任意键继续.......\n");
////            getchar();
////            getchar();
////        }
////        else if (com == 2)
////        {
////            printf("按照男团的名次排序为：\n");
////            sort(a + 1, a + nom, cmp2);
////            for (i = 1; i <= nom; i++)
////            {
////                printf("排名第%d的学校为：%s\n", i, a[i].name);
////            }
////            printf("按任意键继续.......\n");
////            getchar();
////            getchar();
////        }
////        else if (com == 3)
////        {
////            printf("按照女团的名次排序为：\n");
////            sort(a + 1, a + nom, cmp3);
////            for (i = 1; i <= nom; i++)
////            {
////                printf("排名第%d的学校为：%s\n", i, a[i].name);
////            }
////            printf("按任意键继续.......\n");
////            getchar();
////            getchar();
////        }
////        else if (com == 5)
////            break;
////        else
////            printf("无效的命令\n");
////    }
////
////}
////void outschool()//输出学校的总分
////{
////    int i;
////    for (i = 1; i <= nom; i++)
////        printf("%s学校的总分为%d\n", a[i].name, a[i].school);
////    printf("按任意键继续.........\n");
////    getchar();
////    getchar();
////}
////void projectout()//输出项目信息的函数
////{
////    int i, j, k, p, q;
////    for (i = 1; i <= item; i++)
////    {
////        printf("                           %s该项目的排名\n", a[1].b[i].name);
////        printf("                      学校      名次      姓名\n");
////        for (j = 1; j <= a[1].b[i].top; j++)
////        {
////            for (k = 1; k <= nom; k++)
////            {
////                for (p = 1; p <= item; p++)
////                {
////                    if (strcmp(a[k].b[p].name, a[1].b[i].name) == 0)
////                    {
////                        for (q = 1; q <= a[k].b[p].num; q++)
////                        {
////                            if (a[k].b[p].ranking[q] == j)
////                            {
////                                printf("                      %-10s%-10d%s\n", a[k].name, j, a[k].b[p].d[q]);
////                            }
////                        }
////                    }
////
////                }
////            }
////        }
////        printf("\n");
////    }
////    printf("按任意键继续......\n");
////    getchar();
////    getchar();
////
////}
////void savefile()//存文件的函数
////{
////    FILE* fp;
////    int i;
////    if ((fp = fopen("file.txt", "w")) == NULL)
////    {
////        printf("打不开文件\n");
////
////    }
////    else
////    {
////        fwrite(&nom, sizeof(int), 1, fp);
////        fwrite(&item, sizeof(int), 1, fp);
////        for (i = 1; i <= nom; i++)
////        {
////            if (fwrite(&a[i], sizeof(school), 1, fp) != 1)
////                printf("不能打开文件\n");
////        }
////    }
////    fclose(fp);
////    printf("按任意键继续.........");
////    getchar();
////    getchar();
////}
////void readfile()//读文件的函数
////{
////    int i;
////    FILE* fp;
////    if ((fp = fopen("file.txt", "rb")) == NULL)
////    {
////        printf("不能打开文件\n");
////    }
////    else
////    {
////        fread(&nom, sizeof(int), 1, fp);
////        fread(&item, sizeof(int), 1, fp);
////        for (i = 1; i <= nom; i++)
////        {
////            fread(&a[i], sizeof(school), 1, fp);
////        }
////    }
////    printf("按任意键继续.........");
////    getchar();
////    getchar();
////}
////void xuexiao()//查询某个学校或者项目的函数
////{
////    system("cls");
////    printf("请输入你要查找学校还是项目（学校输1，项目输2）:");
////    int com;
////    scanf("%d", &com);
////    printf("\n");
////    int i, j, k, p, q;
////    if (com == 1)
////    {
////        printf("请输入要查找的学校的名称:");
////        char s[20];
////        scanf("%s", s);
////        printf("\n");
////        for (i = 1; i <= nom; i++)
////        {
////            if (strcmp(s, a[i].name) == 0)
////            {
////                printf("学校         项目       性别       名次个数     获得名次数       名次       姓名\n");
////                for (j = 1; j <= item; j++)
////                {
////
////                    for (k = 1; k <= a[i].b[j].num; k++)
////                    {
////                        if (a[i].b[j].gender == 1)
////                            printf("%-13s%-8s   男子       %-15d%-15d%-10d%s\n", a[i].name, a[i].b[j].name, a[i].b[j].top, a[i].b[j].num, a[i].b[j].ranking[k], a[i].b[j].d[k]);
////                        else
////                            printf("%-13s%-8s   女子       %-15d%-15d%-10d%s\n", a[i].name, a[i].b[j].name, a[i].b[j].top, a[i].b[j].num, a[i].b[j].ranking[k], a[i].b[j].d[k]);
////                    }
////                }
////                break;
////            }
////        }
////        if (i == nom + 1)
////        {
////            printf("没有找到你要查找的学校\n");
////        }
////    }
////    else
////    {
////        int flag = 0;
////        printf("请输入要查找的项目的名称:");
////        char s[20];
////        scanf("%s", s);
////        printf("\n");
////        int d;
////        for (j = 1; j <= item; j++)
////        {
////            if (strcmp(a[1].b[j].name, s) == 0)
////            {
////                printf("                           %s该项目的排名\n", a[1].b[i].name);
////                printf("                      学校      名次      姓名\n");
////                for (d = 1; d <= a[1].b[j].top; d++)
////                {
////                    for (k = 1; k <= nom; k++)
////                    {
////                        for (p = 1; p <= item; p++)
////                        {
////                            if (strcmp(a[k].b[p].name, s) == 0)
////                            {
////                                for (q = 1; q <= a[k].b[p].num; q++)
////                                {
////                                    if (a[k].b[p].ranking[q] == d)
////                                    {
////                                        printf("                      %-10s%-10d%s\n", a[k].name, d, a[k].b[p].d[q]);
////                                    }
////                                }
////                            }
////
////                        }
////                    }
////                }
////                flag = 1;
////                break;
////            }
////            if (flag)
////                break;
////        }
////    }
////    printf("按任意键继续......");
////    getchar();
////    getchar();
////}
////void command()//命令函数
////{
////    int com;
////    while (1)
////    {
////        system("cls");
////        menu();
////        printf("请输入要执行的命令\n");
////
////        scanf("%d", &com);
////        if (com == 1)
////            input();
////        else if (com == 2)
////            output();
////        else if (com == 3)
////            sortput();
////        else if (com == 4)
////            projectout();
////        else if (com == 5)
////            outschool();
////        else if (com == 6)
////            savefile();
////        else if (com == 7)
////            readfile();
////        else if (com == 8)
////            xuexiao();
////        else if (com == 9)
////            return;
////        else
////            printf("无效的命令\n");
////    }
////}
////int main()//主函数
////{
////    start();
////    system("cls");
////    command();
////    return 0;
////}
//
//
////异常基本用法try，catch要成对出现
////#include<iostream>
////#include<vector>
////#include<string>
////using namespace std;
////double Divide(double a, double b)
////{
////	try
////	{
////		if (b == 0)
////		{
////			//一旦抛出异常后面的语句不会执行
////			throw string("异常b==0");
////		}
////		else
////		{
////			return a / b;
////		}
////	}
////	catch (int a)
////	{
////		cout << a;
////	}
////	
////	
////}
////void Func()
////{
////	int len, time;
////	cin >> len >> time;
////	try
////	{
////		cout << Divide(len, time) << endl;
////	}
////	catch (const char* errmsg)
////	{
////		cout << errmsg << endl;
////	}
////	cout << __FUNCTION__ << ":" << __LINE__ << "行执行" << endl;
////}
////int main()
////{
////	while (1)
////	{
////		try 
////		{
////			Func();
////		}
////		catch(string& s)
////		{
////			cout << s<<endl;
////		}
////		
////	}
////	return 0;
////}
//
//
////以下这段程序就可以具体打印出那一部分出错了
////一共有三部分一个是HttpServer()，一个是CacheMgr()，一个是SQLMgr()
////#include<thread>
////#include<string>
////#include<iostream>
////using namespace std;
////class Exception
////{
////public:
////	Exception(const string& errmsg, int id)
////		:_errmsg(errmsg)//错误内容
////		, _id(id)//错误id
////	{}
////	virtual string what() const//虚函数
////	{
////		return _errmsg;
////	}
////	int getid() const
////	{
////		return _id;//从外部拿到id
////	}
////protected://被protect外部无法访问但是继承的可以访问
////	string _errmsg;
////	int _id;
////};
////class SqlException : public Exception
////{
////public:
////	SqlException(const string& errmsg, int id, const string& sql)
////		:Exception(errmsg, id)
////		, _sql(sql)
////	{}
////	virtual string what() const//重写虚函数
////	{
////		string str = "SqlException:";
////		str += _errmsg;
////		str += "->";
////		str += _sql;
////		return str;
////	}
////private:
////	const string _sql;
////};
////class CacheException : public Exception
////{
////public:
////	CacheException(const string& errmsg, int id)
////		:Exception(errmsg, id)
////	{}
////	virtual string what() const
////	{
////		string str = "CacheException:";
////		str += _errmsg;
////		return str;
////	}
////};
////class HttpException : public Exception
////{
////public:
////	HttpException(const string& errmsg, int id, const string& type)
////		:Exception(errmsg, id)
////		, _type(type)
////	{}
////	virtual string what() const
////	{
////		string str = "HttpException:";
////		str += _type;
////		str += ":";
////		str += _errmsg;
////		return str;
////	}
////private:
////	const string _type;
////};
////void SQLMgr()
////{
////	if (rand() % 7 == 0)
////	{
////		throw SqlException("权限不⾜", 100, "select * from name = '张三'");
////	}
////	else
////	{
////		cout << "SQLMgr 调⽤成功" << endl;
////	}
////}
////void CacheMgr()
////{
////	if (rand() % 5 == 0)
////	{
////		throw CacheException("权限不⾜", 100);
////	}
////	else if (rand() % 6 == 0)
////	{
////		throw CacheException("数据不存在", 101);
////	}
////	else
////	{
////		cout << "CacheMgr 调⽤成功" << endl;
////	}
////	SQLMgr();//调用数据库
////}
////void HttpServer()
////{
////	if (rand() % 3 == 0)
////	{
////		throw HttpException("请求资源不存在", 100, "get");
////	}
////	else if (rand() % 4 == 0)
////	{
////		throw HttpException("权限不⾜", 101, "post");
////	}
////	else
////	{
////		cout << "HttpServer调⽤成功" << endl;
////	}
////	CacheMgr();//去调用我们的缓存
////}
////
////int main()
////{
////	srand(time(0));
////	while (1)
////	{
////		this_thread::sleep_for(chrono::seconds(1));
////		try
////		{
////			 HttpServer();//去调用网络服务
////			
////		}
////		 catch (const Exception& e) // 这⾥捕获基类，基类对象和派⽣类对象都可以被捕获
////			 {
////			 cout << e.what() << endl;//这里就可以调用对应的虚函数
////			 }
////		 catch (...)//未捕获未知错误
////			 {
////			 cout << "Unkown Exception" << endl;
////			 }
////	}
////		 return 0;
////}
//#include<iostream>
//#include<vector>
//#include<string>
//using namespace std;
//// 下⾯程序模拟展⽰了聊天时发送消息，发送失败捕获异常，但是可能在
// // 电梯地下室等场景⼿机信号不好，则需要多次尝试，如果多次尝试都发
// // 送不出去，则就需要捕获异常再重新抛出在外层处理，其次如果不是⽹络差导致的
//// 错误，捕获后也要重新抛出，为了统一在main函数中处理。
//
//
//class Exception
//{
//public:
//	Exception(const string& errmsg, int id)
//		:_errmsg(errmsg)//错误内容
//		, _id(id)//错误id
//	{}
//	virtual string what() const//虚函数
//	{
//		return _errmsg;
//	}
//	int getid() const
//	{
//		return _id;//从外部拿到id
//	}
//protected://被protect外部无法访问但是继承的可以访问
//	string _errmsg;
//	int _id;
//};
//class SqlException : public Exception
//{
//public:
//	SqlException(const string& errmsg, int id, const string& sql)
//		:Exception(errmsg, id)
//		, _sql(sql)
//	{}
//	virtual string what() const//重写虚函数
//	{
//		string str = "SqlException:";
//		str += _errmsg;
//		str += "->";
//		str += _sql;
//		return str;
//	}
//private:
//	const string _sql;
//};
//class CacheException : public Exception
//{
//public:
//	CacheException(const string& errmsg, int id)
//		:Exception(errmsg, id)
//	{}
//	virtual string what() const
//	{
//		string str = "CacheException:";
//		str += _errmsg;
//		return str;
//	}
//};
//class HttpException : public Exception
//{
//public:
//	HttpException(const string& errmsg, int id, const string& type)
//		:Exception(errmsg, id)
//		, _type(type)
//	{}
//	virtual string what() const
//	{
//		string str = "HttpException:";
//		str += _type;
//		str += ":";
//		str += _errmsg;
//		return str;
//	}
//private:
//	const string _type;
//};
// void _SeedMsg(const string & s)
// {
//	 if (rand() % 2 == 0)
//		 {
//		throw HttpException("⽹络不稳定，发送失败", 102, "put");
//		 }
//	 else if (rand() % 7 == 0)
//		 {
//		 throw HttpException("你已经不是对象的好友，发送失败", 103, "put");
//		 }
//	 else
//		 {
//		 cout << "发送成功" << endl;
//		 }
//	 }
//
// void SendMsg(const string & s)
// {
//	 // 发送消息失败，则再重试3次
//	 for (size_t i = 0; i < 4; i++)
//	 {
//		 try
//		 {
//			 _SeedMsg(s);
//			 break;
//		 }
//		 catch (const Exception& e)
//		 {
//			 // 捕获异常，if中是102号错误，⽹络不稳定，则重新发送
//			 // 捕获异常，else中不是102号错误，则将异常重新抛出
//			 if (e.getid() == 102)
//			 {
//				 // 重试三次以后否失败了，则说明⽹络太差了，重新抛出异常
//				 if (i == 3)
//					 throw;
//				 cout << "开始第" << i + 1 << "重试" << endl;
//			 }
//			 else
//			 {
//				 throw;
//			 }
//		 }
//	 }
// }
// /*int main()
// {
//	 srand(time(0));
//	 string str;
//	 while (cin >> str)
//	 {
//		 try
//		 {
//			 SendMsg(str);
//		 }
//		 catch (const Exception& e)
//		 {
//			 cout << e.what() << endl << endl;
//		 }
//		 catch (...)
//		 {
//			 cout << "Unkown Exception" << endl;
//		 }
//	 }
//	 return 0;
// }*/
//
//
// double Divide(int a, int b)noexcept
// {
//	 // 当b == 0时抛出异常
//	 if (b == 0)
//	 {
//		 throw "Division by zero condition!";
//	 }
//	 return (double)a / (double)b;
// }
// int main()
// {
//	 int i = 0;
//	 cout << noexcept(Divide(1, 2)) << endl;
//	 cout << noexcept(Divide(1, 0)) << endl;
//	 cout << noexcept(++i) << endl;
//	 return 0;
// }